Analytical placement method and apparatus

ABSTRACT

Some embodiments provide an analytical placement method that considers diagonal wiring. This method formulates an objective function that accounts for the use of diagonal wiring during routing. Some embodiments use horizontal, vertical, and ±45° diagonal lines. For such a wiring model, some embodiments use the following objective function: 
             Function   =       ∑   n     ⁢       ∑     p   ⁡     (   n   )         ⁢       b     i   ,   j       ⁡     (               1     2       ⁢     (         β   +       (       x   i     -     x   j       )     2         +       β   +       (       y   i     -     y   j       )     2           )       +                 (     1   -     1     2         )     ⁢             β   +       (       x   i     -     x   j       )     2     +       (       y   i     -     y   j       )     2     -                 2   ⁢       (       x   i     -     x   j       )     2     ⁢       (       y   i     -     y   j       )     2           β   +         (       x   i     -     x   j       )     2     ⁢       (       y   i     -     y   j       )     2                             )                 
In this equation, n represents a net, p(n) represents a unique pair of pins i and j of the net n, x and y represent the x-, and y-coordinates of a particular pin, and b i,j  represents a weighting factor that biases the function based on the desired closeness of pins i and j.

CLAIM OF BENEFIT TO PRIOR APPLICATION

This application is a continuation of U.S. patent application Ser. No.10/236,463, now U.S. Pat. No. 7,058,913, filed Sep. 6, 2002, whichclaims benefit to U.S. Provisional Patent Application 60/317,867, filedon Sep. 6, 2001, U.S. Provisional Patent Application 60/317,867 isincorporated herein by reference.

FIELD OF THE INVENTION

The invention is directed towards analytical placers that considerdiagonal wiring.

BACKGROUND OF THE INVENTION

An integrated circuit (“IC”) is a device (e.g., a semiconductor device)that includes many electronic components, such as transistors,resistors, diodes, etc. These components are often interconnected toform multiple circuit components, such as gates, cells, memory units,arithmetic units, controllers, decoders, etc. An IC includes multiplelayers of wiring that interconnect its electronic and circuitcomponents. Traditionally, IC's use preferred direction (“PD”) wiringmodels, which specify a preferred wiring direction for each of theirwiring layers. In preferred direction wiring models, the preferreddirection typically alternates between successive wiring layers. Oneexample of a PD wiring model is the PD Manhattan wiring model, whichspecifies alternating layers of preferred-direction horizontal andvertical wiring.

Wiring models have been proposed that allow wiring in diagonaldirections (e.g., one wiring model allows wiring in horizontal,vertical, and ±45° diagonal directions). Some of these wiring models arenon-preferred direction (“NPD”) wiring models. An NPD wiring model hasat least one NPD wiring layer, on which two or more wiring directionsare equally preferable and are at least as preferable as all otherwiring directions on that layer.

Engineers design IC's by transforming logical or circuit descriptions ofthe IC's into geometric descriptions, called layouts. IC layoutstypically include (1) circuit modules (i.e., geometric representationsof electronic or circuit IC components) with pins, and (2) interconnectlines (i.e., geometric representations of wiring) that connect the pinsof the circuit modules. A net is typically defined as a collection ofpins that need to be connected. A list of all or some of the nets in alayout is referred to as a net list.

To create layouts, design engineers typically use electronic designautomation (“EDA”) applications. These applications provide sets ofcomputer-based tools for creating, editing, and analyzing IC designlayouts. The IC design process entails various operations. One of theseoperations is placement, which is the process of arranging the circuitmodules on a layout in order to achieve certain objectives, such asreducing layout area, wirelength, wire congestion, etc.

Numerous EDA placers have been proposed to date. Many placers try toreduce expected length of wires for routing nets. A wirelengthminimization problem includes as given n modules with areas a₁, a₂, . .. , a_(n), and m edges e₁, e₂, . . . e_(m) where edge e_(i) hasimportance b_(i) and links module e_(i1) to module e_(i2). A placementtypically specifies a location (x_(j),y_(j)) for each module j within aspecified two-dimensional space. The importance-weighted wire lengthmeasure is:

${\sum\limits_{i = 1}^{m}{b_{i}{L\left( {{x_{e_{i\; 2}} - x_{e_{i\; 1}}},{y_{e_{i\; 2}} - y_{e_{i\; 1}}}} \right)}}},$where L(x,y) is the minimum wire length needed to connect (0,0) to(x,y). The objective is to minimize this importance-weighted wire lengthmeasure, subject to constraints. A typical constraint is that, within asub-region of the placement, the total component area does not exceedthe area of the sub-region.

Certain placers are analytical placers. An analytical placer typicallyperforms the following three operations. First, it formulates anobjective function to express the placement of one or more circuitelements (e.g., circuit modules) in a layout. Second, the placer solvesthe objective function to identify a placement. Third, it iterativelyspecifies additional placement constraints and performs the first twooperations until it reaches a condition for terminating the iterations.

Examples of analytical placers include quadratic and linear placers.Quadratic placers use the sum of the squared Euclidean distance betweeneach pair of pins of each net as the objective function. This objectivefunction is expressed by the following formula:

${{Function} = {\sum\limits_{n}{\sum\limits_{p{(n)}}{b_{i,j}\left( {\left( {x_{i} - x_{j}} \right)^{2} + \left( {y_{i} - y_{j}} \right)^{2}} \right)}}}},$where n represents a net, p(n) represents a unique pair of pins i and jof the net n, x and y represent the x-, and y-coordinates of aparticular pin, and b_(i,j) represents a weighting factor that biasesthe function based on the desired closeness of pins i and j. Linearplacers use the Manhattan distance between each pair of pins of each netas the objective function. This objective function is expressed by thefollowing formula:

${Function} = {\sum\limits_{n}{\sum\limits_{p{(n)}}{{b_{i,j}\left( {{{x_{i} - x_{j}}} + {{y_{i} - y_{j}}}} \right)}.}}}$

Prior analytical placers do not consider the possibility of diagonalwiring. Hence, these techniques result in poor placement configurationsfor routers that use diagonal wiring. Such placement configurationsinefficiently consume the layout area, utilize too much wire, and/orhave poor wire congestions. Consequently, there is a need in the art foranalytical placers that consider the possible use of diagonal wiringduring routing.

SUMMARY OF THE INVENTION

Some embodiments provide an analytical placement method that considersdiagonal wiring. This method formulates an objective function thataccounts for the use of diagonal wiring during routing. Some embodimentsuse horizontal, vertical, and ±45° diagonal lines. For such a wiringmodel, some embodiments use the following objective function:

${Function} = {\sum\limits_{n}{\sum\limits_{p{(n)}}{b_{i,j}\begin{pmatrix}{{\frac{1}{\sqrt{2}}\left( {\sqrt{\beta + \left( {x_{i} - x_{j}} \right)^{2}} + \sqrt{\beta + \left( {y_{i} - y_{j}} \right)^{2}}} \right)} +} \\{\left( {1 - \frac{1}{\sqrt{2}}} \right)\sqrt{\begin{matrix}{\beta + \left( {x_{i} - x_{j}} \right)^{2} + \left( {y_{i} - y_{j}} \right)^{2} -} \\\frac{2\left( {x_{i} - x_{j}} \right)^{2}\left( {y_{i} - y_{j}} \right)^{2}}{\sqrt{\beta + {\left( {x_{i} - x_{j}} \right)^{2}\left( {y_{i} - y_{j}} \right)^{2}}}}\end{matrix}}}\end{pmatrix}}}}$In this equation, n represents a net, p(n) represents a unique pair ofpins i and j of the net n, x and y represent the x-, and y-coordinatesof a particular pin, and b_(i,j) represents a weighting factor thatbiases the function based on the desired closeness of pins i and j.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the invention are set forth in the appendedclaims. However, for purpose of explanation, several embodiments of theinvention are set forth in the following figures.

FIG. 1 illustrates the minimum wire length to connect a pin at (0,0) toa pin at (x, y) in an octilinear model.

FIG. 2 illustrates an example to show smoothed wire lengths.

FIGS. 3 and 4 illustrate the minimum wire length to connect a pin at(0,0) to a pin at (x, y) in a hexagonal model.

FIGS. 5 and 6 illustrate the minimum wire length to connect a pin at(0,0) to a pin at (x, y) in a hybrid wiring model.

FIGS. 7-9 illustrate an analytical placement process of some embodimentsof the invention.

FIG. 10 presents a conceptual block diagram of a computer system thatcan be used in some embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, numerous details are set forth for purposeof explanation. However, one of ordinary skill in the art will realizethat the invention may be practiced without the use of these specificdetails. In other instances, well-known structures and devices are shownin block diagram form in order not to obscure the description of theinvention with unnecessary detail.

Some embodiments provide an analytical placement method that considersdiagonal wiring. This method uses an objective function that accountsfor the use of diagonal wiring during routing. Different embodiments ofthe invention use different objective functions. Section I belowdescribes three objective functions for the following three wiringmodels: (1) an octilinear model that specifies horizontal, vertical, and±45° wiring directions, (2) a hexagonal model that specifies threewiring directions that are arranged at 60° to one another, and (3) ahybrid model that specifies three wiring directions that are arranged asin the hexagonal case and a fourth that is perpendicular to one of thethree directions. Section II then provides the overall flow of theanalytical placer of some embodiments. Finally, Section III illustratesa computer system used in some embodiments of the invention.

I. Objective Function

A. Octilinear Model.

The octilinear model allows interconnect lines in horizontal, vertical,and ±45° preferred directions. For instance, in some embodiments thatuse a five-metal process, the octilinear model specifies vertical wiringon metal layer 1, horizontal wiring on metal layer 2, vertical wiring onmetal layer 3, +45° wiring on metal layer 4, and −45° wiring on metallayer 5. This model is an octilinear model, as it allows interconnectlines to traverse in eight separate vector directions from any givenpoint.

FIG. 1 illustrates that the minimum wire length to connect a pin at(0,0) to a pin at (x,y) in the octilinear model, is x+(√{square rootover (2)}−1)y for the case 0≦y≦x. For general (x,y), by symmetry, theminimum wire length L(x, y) from (0,0) to (x, y) is:L(x,y)=|x|+(√{square root over (2)}−1)|y|, when 0≦|y|≦|x|,else L(x,y)=|y|+(√{square root over (2)}−1)|x|.

The two cases may be unified if absolute values are used as follows:

${{L\left( {x,y} \right)} = {{\frac{1}{\sqrt{2}}\left( {{x} + {y}} \right)} + {\left( {1 - \frac{1}{\sqrt{2}}} \right){{{x} - {y}}}}}},$where the following have been used

${{\max\left( {{x},{y}} \right)} = {\frac{{x} + {y}}{2} + \frac{{{x} - {y}}}{2}}},{{\min\left( {{x},{y}} \right)} = {\frac{{x} + {y}}{2} - {\frac{{{x} - {y}}}{2}.}}}$

In order to stabilize the process of numerically minimizing aggregatewire length subject to constraints, the sharp corner in the graph of theabsolute value function at small values is to be avoided. To do this,each absolute value term |z| is approximated by a smooth function thatis approximately quadratic for small values of z while remaining closeto |z| for large values of z. One choice for this approximation iscalled “β-regularization” and uses the approximation |z|≅√{square rootover (β+z²)} as described by the report by C. J. Alpert, T. F. Chan, A.B. Kahng, I. L. Markov, and P. Mulet “Faster Minimization of LinearWirelength for Global Placement”. If β-regularization is performed tosmooth the outer absolute values in L(x,y), the following is obtained:

$\begin{matrix}\begin{matrix}{{L\left( {x,y} \right)} \cong {{\frac{1}{\sqrt{2}}\left( {\sqrt{\beta + x^{2}} + \sqrt{\beta + y^{2}}} \right)} +}} \\{\left( {1 - \frac{1}{\sqrt{2}}} \right)\sqrt{\beta + \left( {{x} - {y}} \right)^{2}}} \\{= {{\frac{1}{\sqrt{2}}\left( {\sqrt{\beta + x^{2}} + \sqrt{\beta + y^{2}}} \right)} +}} \\{\left( {1 - \frac{1}{\sqrt{2}}} \right)\sqrt{\beta + x^{2} + y^{2} - {2{{xy}}}}}\end{matrix} & A\end{matrix}$

In order to smooth the remaining absolute value term |xy|, someembodiments do not directly apply β-regularization because this can leadto the square root of a negative number when x and y are small. In otherwords, the approximation

$\sqrt{\beta + x^{2} + y^{2} - {2{{xy}}}} \cong \sqrt{\beta + x^{2} + y^{2} - {2\sqrt{\beta + {x^{2}y^{2}}}}}$is not used becauseβ−2√{square root over (β)}<0or small β.

Instead, some embodiments use the following alternative smoothing methodto avoid this difficulty:

$\begin{matrix}\begin{matrix}{\sqrt{\beta + x^{2} + y^{2} - {2{{xy}}}} = \sqrt{\beta + x^{2} + y^{2} - \frac{2x^{2}y^{2}}{{xy}}}} \\{\cong {\sqrt{\beta + x^{2} + y^{2} - \frac{2x^{2}y^{2}}{\sqrt{\beta + {x^{2}y^{2}}}}}.}}\end{matrix} & B\end{matrix}$This is because

${\beta + x^{2} + y^{2} - \frac{2x^{2}y^{2}}{\sqrt{\beta + {x^{2}y^{2}}}}} > 0.$This can be proven (recall that β>0) by observing that it is triviallytrue if x=0 or y=0. and if x and y are both nonzero, then

${{\beta + x^{2} + y^{2} - \frac{2x^{2}y^{2}}{\sqrt{\beta + {x^{2}y^{2}}}}} > {\left( {{x} - {y}} \right)^{2} + {2{{xy}}} - \frac{2x^{2}y^{2}}{\sqrt{\beta + {x^{2}y^{2}}}}} \geq {\left( {{x} - {y}} \right)^{2} + {2{{xy}}} - \frac{2x^{2}y^{2}}{\sqrt{x^{2}y^{2}}}}} = {\left( {{x} - {y}} \right)^{2} \geq 0}$

Equation C provides a smooth approximation L_(β)(x,y) to the wire lengthL(x,y) that is obtained by appropriately smoothing the remainingabsolute value term |xy| in Equation A by the approximation illustratedby Equation B.

$\begin{matrix}{{L_{\beta}\left( {x,y} \right)} = {{\frac{1}{\sqrt{2}}\left( {\sqrt{\beta + x^{2}} + \sqrt{\beta + y^{2}}} \right)} + {\left( {1 - \frac{1}{\sqrt{2}}} \right)\sqrt{\beta + x^{2} + y^{2} - \frac{2x^{2}y^{2}}{\sqrt{\beta + {x^{2}y^{2}}}}}}}} & C\end{matrix}$For the octilinear model, Equation C represents the approximate distancebetween two pins, where one is located at (0,0) and the other at (x,y).Equation D below represents an objective function that uses a moregeneral representation of Equation C to express the distance betweeneach unique pin pair of each net in a set of nets.

$\begin{matrix}{{Function} = {\sum\limits_{n}{\sum\limits_{p{(n)}}{b_{i,j}\begin{pmatrix}{{\frac{1}{\sqrt{2}}\left( {\sqrt{\beta + \left( {x_{i} + x_{j}} \right)^{2}} + \sqrt{\beta + \left( {y_{i} - y_{j}} \right)^{2}}} \right)} +} \\{\left( {1 - \frac{1}{\sqrt{2}}} \right)\sqrt{\begin{matrix}{\beta + \left( {x_{i} - x_{j}} \right)^{2} + \left( {y_{i} - y_{j}} \right)^{2} -} \\\frac{2\;\left( {x_{i} - x_{j}} \right)^{2}\;\left( {y_{i} - y_{j}} \right)^{2}}{\;\sqrt{\beta + {\left( {x_{i} - x_{j}} \right)^{2}\;\left( {y_{i} - y_{j}} \right)^{2}}}}\end{matrix}}}\end{pmatrix}}}}} & D\end{matrix}$In this equation, n represents a net, p(n) represents a unique pair ofpins i and j of the net n, x and y represent the x-, and y-coordinatesof a particular pin, and b_(i,j) represents a weighting factor thatbiases the function based on the desired closeness of pins i and j.

Some embodiments express Equation C differently before trying to solveEquation D. One method involves approximating L_(β)(x,y) by a quadraticfunction in the neighborhood of (x,y), solving the constrained quadraticminimization problem, and then iterating. A quadratic approximation forL_(β)(x,y) may be found by writing selected square root terms using thefact that

$\sqrt{z} = \frac{z}{\sqrt{z}}$for z>0, as follows:

${L_{\beta}\left( {x,y} \right)} = {{\frac{\beta + x^{2}}{\sqrt{2\left( {\beta + x^{2}} \right)}} + \frac{\beta + y^{2}}{\sqrt{2\left( {\beta + y^{2}} \right)}} + {\left( {1 - \frac{1}{\sqrt{2}}} \right)\frac{\beta + x^{2} + y^{2} - \frac{2x^{2}y^{2}}{\sqrt{\beta + {x^{2}y^{2}}}}}{\sqrt{\beta + x^{2} + y^{2} - \frac{2x^{2}y^{2}}{\sqrt{\beta + {x^{2}y^{2}}}}}}}} = {{\left\lbrack {\frac{1}{\sqrt{2\left( {\beta + x^{2}} \right)}} + \frac{1}{\sqrt{2\left( {\beta + y^{2}} \right)}} + {\left( {1 - \frac{1}{\sqrt{2}}} \right)\left( \frac{1}{\sqrt{\beta + x^{2} + y^{2} - {2x^{2}{y^{2}/\sqrt{\beta + {x^{2}y^{2}}}}}}} \right)}} \right\rbrack\beta} + {\quad{{\left\lbrack {\frac{1}{\sqrt{2\left( {\beta + x^{2}} \right)}} + {\left( {1 - \frac{1}{\sqrt{2}}} \right)\left( \frac{1}{\sqrt{\beta + x^{2} + y^{2} - {2x^{2}{y^{2}/\sqrt{\beta + {x^{2}y^{2}}}}}}} \right)}} \right\rbrack x^{2}} + {\left\lbrack {\frac{1}{\sqrt{2\left( {\beta + y^{2}} \right)}} + {\left( {1 - \frac{1}{\sqrt{2}}} \right)\left( \frac{1}{\sqrt{\beta + x^{2} + y^{2} - {2x^{2}{y^{2}/\sqrt{\beta + {x^{2}y^{2}}}}}}} \right)}} \right\rbrack y^{2}} + {\quad{{\left\lbrack {\left( {1 - \frac{1}{\sqrt{2}}} \right)\left( \frac{{- 2}{xy}}{\sqrt{\beta + {x^{2}y^{2}}}\sqrt{\beta + x^{2} + y^{2} - {2x^{2}{y^{2}/\sqrt{\beta + {x^{2}y^{2}}}}}}} \right)} \right\rbrack{xy}} = {{\left\lbrack w_{\beta} \right\rbrack\beta} + {\left\lbrack w_{x^{2}} \right\rbrack x^{2}} + {\left\lbrack w_{y^{2}} \right\rbrack y^{2}} + {\left\lbrack w_{xy} \right\rbrack{xy}}}}}}}}}$In this formulation, it is again assumed that one pin is at (0,0) andthe other is at (x,y). The weights w_(β), w_(x) ₂ , w_(y) ₂ , and w_(xy)would be viewed as constants when approximating L_(β)(x,y) as aquadratic and, for the purpose of this minimization step, the initialterm [w_(β)]β could be ignored, as it would be viewed as a constant.Therefore, the constrained quadratic minimization problem involves termsof the form[w_(x) ₂ ]x²+[w_(y) ₂ ]y²+[w_(xy)]xywhere the weights, computed just before the constrained minimization andthen held fixed, are given by

$w_{x^{2}} = {\frac{1}{\sqrt{2\left( {\beta + x^{2}} \right)}} + {\left( {1 - \frac{1}{\sqrt{2}}} \right)\left( \frac{1}{\sqrt{\beta + x^{2} + y^{2} - {2x^{2}{y^{2}/\sqrt{\beta + {x^{2}y^{2}}}}}}} \right)}}$$w_{y^{2}} = {\frac{1}{\sqrt{2\left( {\beta + y^{2}} \right)}} + {\left( {1 - \frac{1}{\sqrt{2}}} \right)\left( \frac{1}{\sqrt{\beta + x^{2} + y^{2} - {2x^{2}{y^{2}/\sqrt{\beta + {x^{2}y^{2}}}}}}} \right)}}$$w_{xy} = {\left( {1 - \frac{1}{\sqrt{2}}} \right)\left( \frac{{- 2}{xy}}{\sqrt{\beta + {x^{2}y^{2}}}\sqrt{\beta + x^{2} + y^{2} - {2x^{2}{y^{2}/\sqrt{\beta + {x^{2}y^{2}}}}}}} \right)}$

FIG. 2 illustrates an example to show the smoothed wire length, usingx=0.4. plotting length L(x,y) and smoothed length L_(β)(x,y) versus yfor various values of β. As shown in this figure, the approximationimproves as β decreases, while maintaining smoothness.

B. Hexagonal Model.

The hexagonal model specifies three preferred wiring directions that arearranged at 60° to one another. For example, in some embodiments thatuse a four-metal process, the hexagonal model specifies vertical wiringon metal layer 1, horizontal wiring on metal layer 2, +60° wiring onmetal layer 3, and −60° wiring on metal layer 4. In this case, it isassumed that wiring on layer 1 can be ignored as it has relativelylittle amount of space for wiring.

FIG. 3 illustrates that the minimum wire length to connect a pin at(0,0) to a pin at (x,y) in the hexagonal model, is

${x + {\frac{1}{\sqrt{3}}y}},$in the case that

$0 \leq {\frac{1}{\sqrt{3}}y} \leq {x.}$For the case that

${0 \leq x \leq {\frac{1}{\sqrt{3}}y}},$FIG. 4 illustrates that the minimum wire length is

$\frac{2}{\sqrt{3}}{y.}$This wire length may be justified by observing that the triangle formedby (x,y), P, and Q is equilateral, and therefore the total wire lengthfrom (0,0) to (x,y) is equal to the length of the segment from (0,0) toQ. Thus, for general (x,y) by symmetry, the minimum wire length L(x,y)from (0,0) to (x,y) may be written as follows:

${{{{If}\mspace{14mu} 0} \leq {\frac{1}{\sqrt{3}}{y}} \leq {{x}\mspace{14mu}{then}\mspace{14mu}{L\left( {x,y} \right)}}} = {{x} + {\frac{1}{\sqrt{3}}{y}}}},{{{else}\mspace{14mu}{L\left( {x,y} \right)}} = {\frac{2}{\sqrt{3}}{y}}}$These two cases may be unified by using absolute value notation asfollows:

${L\left( {x,y} \right)} = {{\frac{1}{2}{x}} + {\frac{\sqrt{3}}{2}{y}} + {\frac{1}{2}{{{{x} - {\frac{1}{\sqrt{3}}{y}}}}.}}}$

Beta-regularization can be performed to smooth the absolute values asfollows:

$\begin{matrix}{{L\left( {x,y} \right)} \cong {{\frac{1}{2}\sqrt{\beta + x^{2}}} + {\frac{\sqrt{3}}{2}\sqrt{\beta + y^{2}}} + {\frac{1}{2}\sqrt{\beta + \left( {{x} - {\frac{1}{\sqrt{3}}{y}}} \right)^{2}}}}} \\{= {{\frac{1}{2}\sqrt{\beta + x^{2}}} + {\frac{\sqrt{3}}{2}\sqrt{\beta + y^{2}}} +}} \\{\frac{1}{2}{\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {\frac{2}{\sqrt{3}}{{xy}}}}.}}\end{matrix}$This leads to the defining of the smooth approximation to wire length,treating |xy| as earlier to avoid taking square roots of negativevalues, as follows:

$\begin{matrix}\begin{matrix}{{L_{\beta}\left( {x,y} \right)} = {{\frac{1}{2}\sqrt{\beta + x^{2}}} + {\frac{\sqrt{3}}{2}\sqrt{\beta + y^{2}}} +}} \\{\frac{1}{2}\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - \frac{2x^{2}y^{2}}{\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}\end{matrix} & E\end{matrix}$For the hexagonal model, Equation E represents the approximate distancebetween two pins, where one is located at (0,0) and the other at (x,y).Equation F below represents an objective function that uses a moregeneral representation of Equation E to express the distance betweeneach unique pin pair of each net in a set of nets.

$\begin{matrix}{{{{Function} = {\sum\limits_{n}{\sum\limits_{p{(n)}}b_{i,j}}}}\quad}\begin{pmatrix}{{\frac{1}{2}\sqrt{\beta + \left( {x_{i} - x_{j}} \right)^{2}}} + {\frac{\sqrt{3}}{2}\left( {+ \sqrt{\beta + \left( {y_{i} + y_{j}} \right)^{2}}} \right)} +} \\{\frac{1}{2}\sqrt{\beta + \left( {x_{i} - x_{j}} \right)^{2} + {\frac{1}{3}\left( {y_{i} - y_{j}} \right)^{2}} - \frac{2\left( {x_{i} - x_{j}} \right)^{2}\left( {y_{i} - y_{j}} \right)^{2}}{\sqrt{3\left( {\beta + {\left( {x_{i} - x_{j}} \right)^{2}\left( {y_{i} - y_{j}} \right)^{2}}} \right)}}}}\end{pmatrix}} & F\end{matrix}$In this equation, n represents a net, p(n) represents a unique pair ofpins i and j of the net n, x and y represent the x-, and y-coordinatesof a particular pin, and b_(i,j) represents a weighting factor thatbiases the function based on the desired closeness of pins i and j.

As for the embodiments that use the octilinear model, some embodimentsthat use the hexagonal model use a quadratic approximation forL_(β)(x,y) (which Equation E represents) by re-writing selected squareroot terms

$\sqrt{z}\mspace{14mu}{as}\mspace{14mu}{\frac{z}{\sqrt{z}}.}$This approach results in the following expression for L_(β)(x,y).

${L_{\beta}\left( {x,y} \right)} = {{\frac{\beta + x^{2}}{2\sqrt{\beta + x^{2}}} + \frac{\sqrt{3}\left( {\beta + y^{2^{\prime}}} \right)}{2\sqrt{\beta + y^{2}}} + \frac{\beta + x^{2} + {\frac{1}{3}y^{2}} - \frac{2x^{2}y^{2}}{\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}{2\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - \frac{2x^{2}y^{2}}{\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}} = {{{\left\lbrack {\frac{1}{2\sqrt{\beta + x^{2}}} + \frac{\sqrt{3}}{2\sqrt{\beta + y^{2}}} + \frac{1}{2\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}} \right\rbrack\beta} + {\left\lbrack {\frac{1}{2\sqrt{\beta + x^{2}}} + \frac{1}{2\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}} \right\rbrack x^{2}} + {\left\lbrack {\frac{\sqrt{3}}{2\sqrt{\beta + y^{2}}} + \frac{1}{6\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}} \right\rbrack y^{2}} + \left\lbrack \frac{- {xy}}{\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}} \right\rbrack} = {{\left\lbrack w_{\beta} \right\rbrack\beta} + {\left\lbrack w_{x^{2}} \right\rbrack x^{2}} + {\left\lbrack w_{y^{2}} \right\rbrack y^{2}} + {\left\lbrack w_{xy} \right\rbrack{xy}}}}}$In this formulation, it is again assumed that one pin is at (0,0) whilethe other is at (x,y). The weights w_(β), w_(x) ₂ , w_(y) ₂ , and w_(xy)would be viewed as constants when approximating L_(β)(x,y) as aquadratic and, for the purpose of this minimization step, the initialterm [w_(β)]β could be ignored, as it would be viewed as a constant.Therefore, the constrained quadratic minimization problem involves termsof the form[w_(x) ₂ ]x²+[w_(y) ₂ ]y²+[w_(xy)]xywhere the weights, computed just before the minimization and then heldfixed, are given by

$w_{x^{2}} = {\frac{1}{2\sqrt{\beta + x^{2}}} + \frac{1}{2\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}}$$w_{y^{2}} = {\frac{\sqrt{3}}{2\sqrt{\beta + y^{2}}} + \frac{1}{6\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}}$$w_{xy} = \frac{- {xy}}{\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}$

C. Hybrid Model.

In the hybrid model, there are three layers with preferred directionsarranged at 60° to one another and an additional layer perpendicular toone of these three layers. For example, in some embodiments that use afive-metal process, the hybrid model specifies vertical wiring on metallayer 1, horizontal wiring on metal layer 2, +60° wiring on metal layer3, −60° wiring on metal layer 4, and vertical wiring on metal layer 5.Again, in this case, it is assumed that wiring on layer 1 can be ignoredas it has relatively little amount of space for wiring.

FIG. 5 illustrates that the minimum wire length to connect a pin at(0,0) to a pin at (x,y) in the hybrid model, is

${x + {\frac{1}{\sqrt{3}}y}},$for the case

$0 \leq {\frac{1}{\sqrt{3}}y} \leq {x.}$In this case, this length is identical to the hexagonal three-layer casebecause the additional perpendicular layer is not used. For the case

${0 \leq x \leq {\frac{1}{\sqrt{3}}y}},$FIG. 6 illustrates that the minimum wire length is (2−√{square root over(3)})x+y. This case is different from the hexagonal three-layer casebecause the perpendicular layer is used.

Thus, for general (x,y) by symmetry, the minimum wire length L(x,y) from(0,0) to (x,y) may be written as follows:

${{L\left( {x,y} \right)} = {{x} + {\frac{1}{\sqrt{3}}{y}}}},{{{when}\mspace{14mu} 0} \leq {\frac{1}{\sqrt{3}}{y}} \leq {x}},{{{else}\mspace{11mu}{L\left( {x,y} \right)}} = {{\left( {2 - \sqrt{3}} \right){x}} + {{y}.}}}$These two cases may be unified by using absolute value notation asfollows:

${L\left( {x,y} \right)} = {{\frac{3}{2}\left( {1 - \frac{1}{\sqrt{3}}} \right){x}} + {\frac{1}{2}\left( {1 + \frac{1}{\sqrt{3}}} \right){y}} + {\frac{\sqrt{3} - 1}{2}{{{x} - {\frac{1}{\sqrt{3}}{y}}}}}}$

Beta-regularization to smooth the absolute values can be performed asfollows:

${{L\left( {x,y} \right)} \cong {{\frac{3}{2}\left( {1 - \frac{1}{\sqrt{3}}} \right)\sqrt{\beta + x^{2}}} + {\frac{1}{2}\left( {1 + \frac{1}{\sqrt{3}}} \right)\sqrt{\beta + y^{2}}} + {\frac{\sqrt{3} - 1}{2}\sqrt{\beta + \left( {{x} - {\frac{1}{\sqrt{3}}{y}}} \right)^{2}}}}} = {{\frac{3}{2}\left( {1 - \frac{1}{\sqrt{3}}} \right)\sqrt{\beta + x^{2}}} + {\frac{1}{2}\left( {1 + \frac{1}{\sqrt{3}}} \right)\sqrt{\beta + y^{2}}} + {\frac{\sqrt{3} - 1}{2}\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {\frac{2}{\sqrt{3}}{{xy}}}}}}$which leads to the defining of the smooth approximation to wire length,treating |xy| as done earlier to avoid taking square roots of negativevalues, as follows:

$\begin{matrix}{{L_{\beta}\left( {x,y} \right)} = \begin{pmatrix}{{\frac{3}{2}\left( {1 - \frac{1}{\sqrt{3}}} \right)\sqrt{\beta + x^{2}}} + {\frac{1}{2}\left( {1 + \frac{1}{\sqrt{3}}} \right)\left( \sqrt{\beta + y^{2}} \right)} +} \\{\frac{\sqrt{3} - 1}{2}\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - \frac{2x^{2}y^{2}}{\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}\end{pmatrix}} & G\end{matrix}$For the hybrid model, Equation G represents the approximate distancebetween two pins, where one is located at (0,0) and the other at (x,y).Equation H below represents an objective function that uses a moregeneral representation of Equation G to express the distance betweeneach unique pin pair of each net in a set of nets.

$\begin{matrix}{{Function} = {\sum\limits_{n}{\sum\limits_{p{(n)}}{b_{i,j}{\quad\left( {{\frac{3}{2}\left( {1 - \frac{1}{\sqrt{3}}} \right)\sqrt{\beta + \left( {x_{i} - x_{j}} \right)^{2}}} + {\frac{1}{2}\left( {1 + \frac{1}{\sqrt{3}}} \right)\left( \sqrt{\beta + \left( {y_{i} - y_{j}} \right)^{2}} \right)} + {\frac{\sqrt{3} - 1}{2}\sqrt{\begin{matrix}{\beta + \left( {x_{i} - x_{j}} \right)^{2} + {\frac{1}{3}\left( {y_{i} - y_{j}} \right)^{2}} -} \\\frac{2\left( {x_{i} - x_{j}} \right)^{2}\;\left( {y_{i} - y_{j}} \right)^{2}}{\sqrt{3\left( {\beta + {\left( {x_{i} - x_{j}} \right)^{2}\;\left( {y_{i} - y_{j}} \right)^{2}}} \right)}}\end{matrix}}}} \right)}}}}} & H\end{matrix}$In this equation, n represents a net, p(n) represents a unique pair ofpins i and j of the net n, x and y represent the x-, and y-coordinatesof a particular pin, and b_(i,j) represents a weighting factor thatbiases the function based on the desired closeness of pins i and j.

As for the embodiments that use the octilinear and hexagonal models,some embodiments that use the hybrid model use a quadratic approximationfor L_(β)(x,y) (which Equation G represents) by re-writing selectedsquare root terms

$\sqrt{z}\mspace{14mu}{as}\mspace{14mu}{\frac{z}{\sqrt{z}}.}$This approach results in the following expression for L_(β)(x,y).

${L_{\beta}\left( {x,y} \right)} = {{{\frac{3}{2}\left( {1 - \frac{1}{\sqrt{3}}} \right)\frac{\beta + x^{2}}{\sqrt{\beta + x^{2}}}} + {\frac{1}{2}\left( {1 + \frac{1}{\sqrt{3}}} \right)\frac{\beta + y^{2}}{\sqrt{\beta + y^{2}}}} + {\left( \frac{\sqrt{3} - 1}{2} \right)\frac{\beta + x^{2} + {\frac{1}{3}y^{2}} - \frac{2x^{2}y^{2}}{\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}{\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - \frac{2x^{2}y^{2}}{\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}} = {\quad{{\left\lbrack {{\frac{3}{2}\left( {1 - \frac{1}{\sqrt{3}}} \right)\frac{1}{\sqrt{\beta + x^{2}}}} + {\frac{1}{2}\left( {1 + \frac{1}{\sqrt{3}}} \right)\frac{1}{\sqrt{\beta + y^{2}}}} + {\left( \frac{\sqrt{3} - 1}{2} \right)\frac{1}{\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}}} \right\rbrack\beta} + {\left\lbrack {{\frac{3}{2}\left( {1 - \frac{1}{\sqrt{3}}} \right)\frac{1}{\sqrt{\beta + x^{2}}}} + {\left( \frac{\sqrt{3} - 1}{2} \right)\frac{1}{\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}}} \right\rbrack x^{2}} + {\left\lbrack {{\frac{1}{2}\left( {1 + \frac{1}{\sqrt{3}}} \right)\frac{1}{\sqrt{\beta + y^{2}}}} + {\left( \frac{\sqrt{3} - 1}{6} \right)\frac{1}{\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}}} \right\rbrack y^{2}} + {\quad{{\left\lbrack \frac{{- \left( {\sqrt{3} - 1} \right)}{xy}}{\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}} \right\rbrack{xy}} = {{\left\lbrack w_{\beta} \right\rbrack\beta} + {\left\lbrack w_{x^{2}} \right\rbrack x^{2}} + {\left\lbrack w_{y^{2}} \right\rbrack y^{2}} + {\left\lbrack w_{xy} \right\rbrack{xy}}}}}}}}$In this formulation, it is again assumed that one pin is at (0,0) whilethe other is at (x,y). The weights w_(β), w_(x) ₂ , w_(y) ₂ and w_(xy)would be viewed as constants when approximating L_(β)(x,y) as aquadratic and, for the purpose of this minimization step, the initialterm [w_(β)]β could be ignored, as it would be viewed as a constant.Therefore, the constrained quadratic minimization problem involves termsof the form[w_(x) ₂ ]x²+[w_(y) ₂ ]y²+[w_(xy)]xywhere the weights, computed just before the minimization and then heldfixed, are given by

$w_{x^{2}} = {{\frac{3}{2}\left( {1 - \frac{1}{\sqrt{3}}} \right)\frac{1}{\sqrt{\beta + x^{2}}}} + {\left( \frac{\sqrt{3} - 1}{2} \right)\frac{1}{\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}}}$$w_{y^{2}} = {{\frac{1}{2}\left( {1 + \frac{1}{\sqrt{3}}} \right)\frac{1}{\sqrt{\beta + y^{2}}}} + {\left( \frac{\sqrt{3} - 1}{6} \right)\frac{1}{\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}}}$$w_{xy} = \frac{{- \left( {\sqrt{3} - 1} \right)}{xy}}{\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}\sqrt{\beta + x^{2} + {\frac{1}{3}y^{2}} - {2x^{2}{y^{2}/\sqrt{3\left( {\beta + {x^{2}y^{2}}} \right)}}}}}$II. Overall Flow of Analytical Placer

FIG. 7 illustrates a process 700 that uses one of the above-describedobjective functions to identify a placement for a set of circuit modulesin a layout region. The set of circuit modules can include all or someof the modules in the layout region. The layout region can be the entirelayout or a portion of the layout. Also, the layout can be the layout ofan entire IC or a portion of an IC.

Several nets are associated with the circuit modules in the layoutregion or the pins of these modules. In particular, each net has severalcircuit elements associated with it (i.e., each net is defined toinclude several circuit elements). The circuit elements of the nets arethe pins in some embodiments, while they are the circuit modules inother embodiments. Some embodiments specify exact locations for the pinson the modules, while other embodiments assume that the pins of eachmodule are located at a particular module location (e.g., the origin ofthe module). Yet other embodiments specify exact pin locations for fixedmodules while specifying a particular module location for all pins ofthe movable modules.

Before the process 700 starts, each circuit module and its pin(s) haveinitial positions within the layout region. In some embodiments, theinitial circuit-element positions are random. In other embodiments, aprevious physical-design operation, such as floor planning, partially orcompletely specifies the initial positions of these elements. Otherembodiments use another placer to specify the initial positions of thecircuit elements, and then use process 700 to optimize the placementconfiguration for a wiring architecture that uses diagonal wiring.

The process 700 initially specifies (at 705) a placement problem tosolve. This placement problem includes an objective function thatcomputes a placement cost. This objective function accounts for the useof diagonal wiring during routing and depends on the particular wiringmodel. For instance, some embodiments use equation D, F, or H as theobjective function when they use the octilinear, hexagonal, or hybridwiring model. In these embodiments, the process formulates an objectivefunction by first identifying each unique pin-pair of each net that isassociated with the circuit modules that the process 700 is placing. Foreach unique pin-pair, the process specifies one instance of equation C,E, or G to express the distance between the pins. The process expressesthe objective function as a sum of all the specified equations.

The placement problem specified at 705 also includes a constraint thatthe pins should be located somewhere in the region. After 705, theprocess solves (at 710) the placement problem to identify an initialplacement of the circuit modules. Different embodiments use differentsolvers to solve the placement problem. The task of the solver is toidentify a solution that minimizes the objective function whilesatisfying the specified constraints. In some embodiments, the solverexamines several solutions, where each solution provides a real numbervalue for each placement problem variable (e.g., in some embodiments,for each module location variable, where the pin locations are derivedbased on the module locations).

As mentioned above, different embodiments use different solvers that arebased on different non-linear optimization techniques to solve theabove-mentioned non-linear objective functions. For instance, freewaresolvers (such as L-BFGS solver, which is based on a quasi-Newtontechnique) or licensed solvers (such as the Knitro solver, which isbased on interior-point technique) can be used. The L-BFGS solver isdiscussed in R. H. Byrd, P. Lu, and J. Nocedal “A Limited MemoryAlgorithm for Bound Constrained Optimization”, SIAM Journal onScientific and Statistical Computing, 16, 5. pp. 1190-1208. and Zhu, R.H. Byrd and J. Nocedal “L-BFGS-B: Algorithm 778: L-BFGS-B, Fortranroutines for large scale bound constrained optimization” (1997), ACMTransactions on Mathematical Software, Vol. 23. No. 4, pp. 550-560. TheKnitro solver is discussed in R. Byrd, M. E. Hriber, and J. Nocedal: “AnInterior-Point Method for Large Scale Nonlinear Programming” (1999),SIAM J. Optimization, 9, 4. pp. 877-900.

In the initial placement configuration that the solver identifies at710, the circuit modules will likely be clustered around the center ofthe layout region. FIG. 8 illustrates one example of such clustering.The process 700 addresses this clustering by iteratively (1)partitioning (at 715) the region into smaller and smaller, (2)formulating (at 720) a new placement problem for each iteration, and (3)solving (at 725) each placement problem to distribute gradually themodules within the regions.

Specifically, after 710, the process partitions (at 715) the layoutregion. Different embodiments use different partitioning techniques.Some embodiments use a quad-partitioning technique that partitions aregion into four sub-regions. FIG. 8 illustrates one such partitioning.

Next, at 720, the process 700 formulates another placement problem. Thisplacement problem includes an objective function that is similar to theobjective function that was formulated at 705. Some embodiments,however, reduce the smoothing-parameter β at each iteration through 720to have the placement converge to the constrained minimum wire lengthsolution.

The problem formulated at 720 also specifies placement constraints forthe circuit modules. The placement constraints are based on thepartitioning in the last iteration of 715. Specifically, the placementconstraints assign each module and its pins to a particular sub-regionthat the process defined in the last iteration through 715. Forinstance, in FIG. 8, the process might specify that the x- andy-coordinates of the pins of module 805 have to be in sub-region 810(i.e., in the coordinate range of sub-region 810). A variety of knowntechniques can be used to assign modules to partitioned sub-regions. Forinstance, some embodiments use the techniques described in J. Vygen,Four-way partitioning of two-dimensional sets, Report No. 00900-OR,Research Institute for Discrete Mathematics, University of Bonn. Seealso J. Vygen “Plazierung im VLSI-Design und ein zweidimensionalZerlegungsproblem, Ph.D. thesis. University of Bonn, 1997; see also JenVygen's website:

-   -   http://www.or.uni-bonn.de/home/vygen/indexeng.html.

For each particular sub-region that the process defined in the lastiteration of 715, the process also specifies (at 720) a centeringconstraint that requires the average x- and y-coordinates of the modulesin the sub-region to be the x- and y-coordinates of the sub-region'scenter. In other embodiments, the centering constraint requires theaverage x- and y-coordinates to be within a specific distance from thesub-region's center. The centering constraint causes the modules todistribute more evenly in the partitioned sub-regions.

In some embodiments, the process also distributes (at 720) the circuitmodules in each sub-region defined at 715. In some of these embodiments,the solver starts with the coordinates of the distributed circuitelements. In other embodiments, however, the process 700 does notspecify any new distribution. In these embodiments, the solver (at 725)starts from the last-specified coordinates of the circuit elements.

At 725, the process solves the placement problem specified at 720. Thissolving operation is similar to the one that is performed at 710 exceptthat the constraints identified at 720 cause the operation at 725 toidentify each pin or module location within the sub-region specified forthe pin or module.

After 725, the process determines (at 730) whether it should stop itsiterative operations. In some embodiments, the process stops when asub-region identified at 715 has reached a particular size. When theprocess determines (at 730) that it should not stop, it transitions to715 to partition further each sub-region that was identified in theprevious iteration. Some embodiments use the same quad-partitioning gridat each iteration of 715. One such example is illustrated in FIG. 9,which shows each sub-region of FIG. 8 further divided into four smallersub-regions. After the partitioning at 715, the process again (1) at 720specifies a new placement problem with new placement constraints andreduced smoothing-parameter β and (2) at 725 solves the formulatedplacement problem.

Each iterative solve operation at 730 results in the clustering of thecircuit modules around the center of their sub-regions. For instance,FIG. 9 illustrates the clustering of the circuit modules around thecenter of sub-regions 810, 815, 820, and 830. Accordingly, the iterativepartitioning, formulation, and solve operations are intended todistribute gradually the modules within the region.

When the process 700 determines (at 730) that it should stop itsiterations, it specifies (at 735) a final placement for each module inthe final set of sub-regions that the process identified in its lastiteration through 715. In some embodiments, the process identifies thefinal placement by using known legalization techniques for distributinga set of modules in a sub-region. After 735, the process 700 ends.

III. The Computer System

FIG. 10 presents a computer system with which one embodiment of thepresent invention is implemented. Computer system 1000 includes a bus1005, a processor 1010, a system memory 1015, a read-only memory 1020, apermanent storage device 1025, input devices 1030, and output devices1035.

The bus 1005 collectively represents all system, peripheral, and chipsetbuses that communicatively connect the numerous internal devices of thecomputer system 1000. For instance, the bus 1005 communicativelyconnects the processor 1010 with the read-only memory 1020, the systemmemory 1015, and the permanent storage device 1025.

From these various memory units, the processor 1010 retrievesinstructions to execute and data to process in order to execute theprocesses of the invention. The read-only-memory (ROM) 1020 storesstatic data and instructions that are needed by the processor 1010 andother modules of the computer system. The permanent storage device 1025,on the other hand, is read-and-write memory device. This device is anon-volatile memory unit that stores instruction and data even when thecomputer system 1000 is off. Some embodiments of the invention use amass-storage device (such as a magnetic or optical disk and itscorresponding disk drive) as the permanent storage device 1025. Otherembodiments use a removable storage device (such as a floppy disk orzip® disk, and its corresponding disk drive) as the permanent storagedevice. Like the permanent storage device 1025, the system memory 1015is a read-and-write memory device. However, unlike storage device 1025,the system memory is a volatile read-and-write memory, such as a randomaccess memory. The system memory stores some of the instructions anddata that the processor needs at runtime. In some embodiments, theinvention's processes are stored in the system memory 1015, thepermanent storage device 1025, and/or the read-only memory 1020.

The bus 1005 also connects to the input and output devices 1030 and1035. The input devices enable the user to communicate information andselect commands to the computer system. The input devices 1030 includealphanumeric keyboards and cursor-controllers. The output devices 1035display images generated by the computer system. For instance, thesedevices display IC design layouts. The output devices include printersand display devices, such as cathode ray tubes (CRT) or liquid crystaldisplays (LCD).

Finally, as shown in FIG. 10, bus 1005 also couples computer 1000 to anetwork 1065 through a network adapter (not shown). In this manner, thecomputer can be a part of a network of computers (such as a local areanetwork (“LAN”), a wide area network (“WAN”), or an Intranet) or anetwork of networks (such as the Internet). Any or all of the componentsof computer system 1000 may be used in conjunction with the invention.However, one of ordinary skill in the art would appreciate that anyother system configuration may also be used in conjunction with thepresent invention.

While the invention has been described with reference to numerousspecific details, one of ordinary skill in the art will recognize thatthe invention can be embodied in other specific forms without departingfrom the spirit of the invention. For instance, in some embodiments, theprocess 700 of FIG. 7 reduces the smoothing parameter β only afterpartitioning the region into smaller sub-regions. Other embodiments,however, optimize the placement at each level in the partitioninghierarchy by iteratively solving the placement problem for graduallydecreasing smoothing parameter β. After optimizing the placement at aparticular level, these embodiments go to the next level of partitioning(i.e., they partition the region further) and optimize the placement atthat level by iteratively solving the placement problem for graduallydecreasing smoothing parameter β. These embodiments proceed in thismanner until the partitioned sub-regions are smaller than a thresholdsize. Thus, one of ordinary skill in the art would understand that theinvention is not to be limited by the foregoing illustrative details,but rather is to be defined by the appended claims.

1. An analytical placement method for identifying locations of circuitelements in a region of a layout, the method comprising: a) formulatingan objective function that accounts for diagonal wiring during routing;b) solving the objective function to identify the locations of thecircuit elements to be placed, wherein the objective function iscontinuously differentiable along at least a portion of a domain overwhich the objective function is defined.
 2. The method of claim 1,wherein formulating the objective function further comprises: a)identifying at least one pair of pins in the layout that have to beconnected; b) specifying the distance between the pin pair based on adistance formula that accounts for diagonal wiring during routing. 3.The method of claim 2, wherein the circuit elements are circuit modules,each circuit module having a set of pins, the region having a set ofnets, wherein each net specifies a set of pins that have to beconnected, wherein formulating the objective function further comprises:a) identifying pairs of pins in the layout that have to be connected; b)specifying a distance between each pin pair based on a distance formulathat accounts for diagonal wiring during routing; c) specifying theobjective function as an amalgamation of the specified distanceformulas.
 4. The method of claim 3, wherein identifying pairs of pins inthe layout comprises identifying each possible pair of pins of each netin the set of nets.
 5. The method of claim 2, wherein the distanceformula is based on a wiring model that is used for routing.
 6. Themethod of claim 5, wherein the wiring model is an octilinear model thatspecifies horizontal, vertical, and ±45° wiring, wherein the distanceformula is:$\left( {{\frac{1}{\sqrt{2}}\left( {\sqrt{\beta + \left( {x_{i} - x_{j}} \right)^{2}} + \sqrt{\beta + \left( {y_{i} - y_{i}} \right)^{2}}} \right)} + {\left( {1 - \frac{1}{\sqrt{2}}} \right)\sqrt{\beta + \left( {x_{i} + x_{j}} \right)^{2} + \left( {y_{i} - y_{j}} \right)^{2} - \frac{2\left( {x_{i} - x_{j}} \right)^{2}\left( {y_{i} - y_{j}} \right)^{2}}{\sqrt{\beta + {\left( {x_{i} - x_{j}} \right)^{2}\left( {y_{i} - y_{j}} \right)^{2}}}}}}} \right)$wherein i and j represent the pins, x and y represent the x-, andy-coordinates of a particular pin, and β represents a smoothingparameter.
 7. The method of claim 5, wherein the wiring model is ahexagonal model that specifies three wiring directions each at 60° toother directions, wherein the distance formula is:$\left( {{\frac{1}{2}\sqrt{\beta + \left( {x_{i} - x_{j}} \right)^{2}}} + {\frac{\sqrt{3}}{2}\left( \sqrt{\beta + \left( {y_{i} - y_{i}} \right)^{2}} \right)} + {\frac{1}{2}\sqrt{\beta + \left( {x_{i} + x_{j}} \right)^{2} + {\frac{1}{3}\left( {y_{i} - y_{j}} \right)^{2}} - \frac{2\left( {x_{i} - x_{j}} \right)^{2}\left( {y_{i} - y_{j}} \right)^{2}}{\sqrt{3\left( {\beta + {\left( {x_{i} - x_{j}} \right)^{2}\left( {y_{i} - y_{j}} \right)^{2}}} \right)}}}}} \right)$wherein i and j represent the pins, x and y represent the x-, andy-coordinates of a particular pin, and β represents a smoothingparameter.
 8. The method of claim 5, wherein the wiring model is a modelthat specifies four wiring directions, three of which are at 60° to oneanother and a fourth is at 90° to one of the other three directions,wherein the distance formula is:$\left( {{\frac{3}{2}\left( {1 - \frac{1}{\sqrt{3}}} \right)\sqrt{\beta + \left( {x_{i} - x_{j}} \right)^{2}}} + {\frac{1}{2}\left( {1 + \frac{1}{\sqrt{3}}} \right)\left( \sqrt{\beta + \left( {y_{i} - y_{i}} \right)^{2}} \right)} + {\frac{\sqrt{3} - 1}{2}\sqrt{\beta + \left( {x_{i} + x_{j}} \right)^{2} + {\frac{1}{3}\left( {y_{i} - y_{j}} \right)^{2}} - \frac{2\left( {x_{i} - x_{j}} \right)^{2}\left( {y_{i} - y_{j}} \right)^{2}}{\sqrt{3\left( {\beta + {\left( {x_{i} - x_{j}} \right)^{2}\left( {y_{i} - y_{j}} \right)^{2}}} \right)}}}}} \right)$wherein i and j represent the pins, x and y represent the x-, andy-coordinates of a particular pin, and β represents a smoothingparameter.
 9. The method of claim 1, wherein the objective function is afirst objective function, the method further comprising: partitioningthe region into a set of sub-regions; specifying placement constraintsbased on the sub-regions; finding a solution to a second objectivefunction that satisfies the constraints, wherein the second objectivefunction accounts for diagonal wiring during routing.
 10. The method ofclaim 9, wherein the first and second objective functions are identical.11. The method of claim 9, wherein the objective functions include asmoothing parameter, wherein the objective functions have differentsmoothing parameters.
 12. The method of claim 9, wherein partitioningthe region comprises partitioning the region into four sub-regions. 13.The method of claim 9, wherein specifying placement constraintscomprises requiring each circuit element to be within a particularsub-region.
 14. The method of claim 13, wherein specifying placementconstraints further comprises requiring average x- and y-coordinates ofthe circuit elements in a sub-region to be within a particular range ofa center of the sub-region.
 15. The method of claim 13, whereinspecifying placement constraints further comprises requiring average x-and y-coordinates of the circuit elements in a sub-region to be a centerof the sub-region.
 16. A computer readable medium that stores a computerprogram for an analytical placement method for identifying locations ofcircuit elements in a region of a layout, the program comprisinginstructions for: a) formulating an objective function that accounts fordiagonal wiring during routing; and b) solving the objective function toidentify the locations of the circuit elements to be placed, wherein theobjective function is continuously differentiable alone at least aportion of a domain over which the objective function is defined. 17.The computer readable medium of claim 16, wherein the instructions forformulating the objective function further comprises instructions for:a) identifying at least one pair of pins in the layout that have to beconnected; b) specifying a distance between the pin pair based on adistance formula that accounts for diagonal wiring during routing. 18.The computer readable medium of claim 17, wherein the distance formulais based on a wiring model that is used for routing.
 19. The computerreadable medium of claim 16, wherein the objective function is a firstobjective function, the computer program further comprising instructionsfor: partitioning the region into a set of sub-regions; specifyingplacement constraints based on the sub-regions; finding a solution to asecond objective function that satisfies the constraints, wherein thesecond objective function accounts for diagonal wiring during routing.20. The computer readable medium of claim 19, wherein the instructionsfor specifying placement constraints comprise instructions for requiringeach circuit element to be within a particular sub-region.
 21. Thecomputer readable medium of claim 20, wherein the instructions forspecifying placement constraints further comprise instructions forrequiring average x- and y-coordinates of the circuit elements in asub-region to be within a particular range of a center of thesub-region.
 22. The computer readable medium of claim 20, wherein theinstructions for specifying placement constraints further compriseinstructions for requiring average x- and y-coordinates of the circuitelements in a sub-region to be a center of the sub-region.